import jieba
#首先要保证所打开的文件是utf-8编码，如果不是，可使用记事本另存为utf-8编码
# #UTF-8是一种面向互联网传输出现的变长（1-4字节）的字符UNICODE编码，它兼容ASCII码，即英文字
# 符1个字节，汉字占3个字节。
with open('唐诗三百首.txt','r',encoding='utf-8')as fr:
     txt=fr.read();
words=jieba.lcut(txt)#精确模式分析，返回一个列表类型
counts={}    #生成一个空字典
for word in words:#统计每个单词的个数#有则加1，没有返回0+1（添加了新的键值对）
    counts[word]=counts.get(word,0)+1#返回所有的键值对
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)#排序
for i in range(30):    #打印前30个
    word,count=items[i]
    print("{0:<10}{1:>5}".format(word,count))#word左对齐,count右对齐